package com.smedi.ismedi.file.core.application.service;

import com.smedi.ismedi.file.core.domain.aggregatemodel.FileInfo;
import org.springframework.web.multipart.MultipartFile;

public interface LibreOfficeService {
    /**
     * 传入文件的情况下用LibreOffice进行文件转换
     *
     * @param file 需要转换的文件
     * @return byte[]
     */
    FileInfo convertFileToPdfWithFile(MultipartFile file);

    /**
     * 传入主键的情况下用LibreOffice进行文件转换
     *
     * @param fileKey 文件主键
     * @return FileInfo
     */
    FileInfo convertFileToPdfWithFileKey(String fileKey);

    /**
     * 传入文件的情况下用LibreOffice进行文件转换(不支持签章)
     *
     * @param file 需要转换的文件
     * @return byte[]
     */
    FileInfo convertFileToPdfWithFileNoSign(MultipartFile file);

    /**
     * 传入主键的情况下用LibreOffice进行文件转换(不支持签章)
     *
     * @param fileKey 文件主键
     * @return FileInfo
     */
    FileInfo convertFileToPdfWithFileKeyNoSign(String fileKey);


    /**
     * 传入文件的情况下用LibreOffice进行文件转换(收费)
     *
     * @param file 需要转换的文件
     * @return byte[]
     */
    FileInfo convertFileToPdfWithFileNoFree(MultipartFile file);

    /**
     * 传入主键的情况下用LibreOffice进行文件转换(收费)
     *
     * @param fileKey 文件主键
     * @return FileInfo
     */
    FileInfo convertFileToPdfWithFileKeyNoFree(String fileKey);
}
